package com.swyc.osschat.Test.designMode.singleCase.run;

/**
 * @description 懒汉式（线程安全，同步代码块）
 * 这种方法是为了解决上面每次调用的同步问题，把synchronized加在了代码块中。
 * 而在多线程同时运行到if中时，仍然会产生多个实例。不推荐使用
 * @Author: z156940l@outlook.com
 * @className SingleObj5
 * @Date: 2022/7/25 18:33
 */
public class SingleObj5 {
    //私有化构造方法，防止外部new
    private SingleObj5(){
    }

    //提供静态变量
    private static SingleObj5 instance;

    //返回实例 代码块同步
    public static SingleObj5 getInstance(){
        if (instance==null){
            synchronized (SingleObj5.class){
                instance = new SingleObj5();
            }
        }
        return instance;
    }
}
